package com.example.IService;

import com.example.Entity.Dto.PageParmar;
import com.example.Entity.Po.tn_sys_collect;
import com.example.Entity.Vo.APIResult;

public interface ICollectService {
    /**
     * 获取用户的收藏夹
     * @param pageParmar 分页
     * @return APIResult
     */
    APIResult GetUserCollect(PageParmar pageParmar);

    /**
     * 添加用户的收藏夹
     * @param sysCollect 数据
     * @return APIResult
     */
    APIResult AddUserCollect(tn_sys_collect sysCollect);

    /**
     * 删除用户的收藏夹
     * @param uuid 唯一标识符
     * @return APIResult
     */
    APIResult DeleteUserCollect(String uuid);

    /**
     * 获取用户的垃圾桶内的收藏夹
     * @param pageParmar 分页
     * @return APIResult
     */
    APIResult GetUserRecycleBin(PageParmar pageParmar);

    /**
     * 删除用户的收藏夹（假删除）
     * @param uuid 唯一标识符
     * @return APIResult
     */
    APIResult FalseDeleteUserCollect(String uuid);

    /**
     * 恢复用户的收藏夹
     * @param uuid 唯一标识符
     * @return APIResult
     */
    APIResult RecoverUserCollect(String uuid);

    /**
     * 获取所有的分享收藏夹
     * @param pageParmar 分页
     * @return APIResult
     */
    APIResult GetShareCollect(PageParmar pageParmar);

    /**
     * 用户分享收藏夹
     * @param uuid 唯一标识符
     * @return APIResult
     */
    APIResult UserShareCollect(String uuid);

    /**
     * 取消分享
     * @param uuid 唯一标识符
     * @return APIResult
     */
    APIResult CancelCollect(String uuid);

    /**
     * 修改文件夹
     * @param uuid 收藏的guid
     * @param foldername 文件夹名称
     * @return APIResult
     */
    APIResult UpdateCollectFolder(String uuid, String foldername);

    /**
     * 修改收藏内容
     * @param sysCollect 数据
     * @return APIResult
     */
    APIResult UpdateCollect(tn_sys_collect sysCollect);

    /**
     * 将公共的收藏添加到我的收藏中
     * @param uuid 唯一标识符
     * @param filename 文件夹名称
     * @return APIResult
     */
    APIResult AddCopyUserCollect(String uuid, String filename);
}
